﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ProDivingAdmin2salmon14
{
    public delegate void DelegateAddDiverToList(Diver diver);
    public delegate void DelegateAddDiveToDiver(Diver diver, Dive dive);
    public delegate List<Dive> DelegateGetDiveListFromDiver(Diver diver);
    public delegate string DelegateGetDiveName(string diveCode);
    public delegate void DelegateDeleteDiveFromDiver(Diver diver, int index);
    public delegate DiverList DelegateGetNewDiverList();
    public delegate void DelegateSaveDivers(DiverList diverList, string filePath);

    public delegate void DelegateEditDiveToDiver(Diver diver, Dive newDive, int diveIndx);
    public delegate void DelegateEditDiver(int diverIndx, Diver newDiver);
    public delegate void DelegateDeleteDiver(int diverIndx);
    public delegate int DelegateGetAmountOfDives();
    public delegate DiverList DelegateLoadDiverList(string filePath);

    public interface IAddDataForm
    {
        event DelegateAddDiverToList EventAddDiverToList;
        event DelegateAddDiveToDiver EventAddDiveToDiver;
        event DelegateGetDiveListFromDiver EventGetDiveListFromDiver;
        event DelegateGetDiveName EventGetDiveName;
        event DelegateDeleteDiveFromDiver EventDeleteDiveFromDiver;
        event DelegateGetNewDiverList EventGetNewDiverList;
        event DelegateSaveDivers EventSaveDivers;
        event DelegateEditDiveToDiver EventEditDiveToDiver;
        event DelegateEditDiver EventEditDiver;
        event DelegateDeleteDiver EventDeleteDiver;
        event DelegateGetAmountOfDives EventGetAmountOfDives;
        event DelegateLoadDiverList EventLoadDiverList;
    }
}
